package com.sptus.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.sptus.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;

@Data
@TableName("spt_user")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="spt_user对象", description="spt_user")
public class SptUser implements Serializable {
    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "id")
    private Integer id;
    /**邮箱*/
    @Excel(name = "邮箱", width = 15)
    @ApiModelProperty(value = "邮箱")
    private String email;
    /**密码*/
    @Excel(name = "密码", width = 15)
    @ApiModelProperty(value = "密码")
    private String password;
    /**长期认证Token*/
    @Excel(name = "长期认证Token", width = 15)
    @ApiModelProperty(value = "长期认证Token")
    private String rememberToken;
    /**昵称*/
    @Excel(name = "昵称", width = 15)
    @ApiModelProperty(value = "昵称")
    private String nickname;
    /**名*/
    @Excel(name = "名", width = 15)
    @ApiModelProperty(value = "名")
    private String firstName;
    /**姓*/
    @Excel(name = "姓", width = 15)
    @ApiModelProperty(value = "姓")
    private String lastName;
    /**头像*/
    @Excel(name = "头像", width = 15)
    @ApiModelProperty(value = "头像")
    private String avatar;
    /**邮箱认证时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "邮箱认证时间")
    private java.util.Date emailVerifiedAt;
    /**createdAt*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "createdAt")
    private java.util.Date createdAt;
    /**updatedAt*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "updatedAt")
    private java.util.Date updatedAt;
    /**deletedAt*/
    @Excel(name = "deletedAt", width = 15, dateFormat = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "deletedAt")
    private java.util.Date deletedAt;
    /**是否google授权*/
    @Excel(name = "是否google授权", width = 15)
    @ApiModelProperty(value = "是否google授权")
    private Integer isGoogleAuth;
    /**Google账号唯一ID*/
    @Excel(name = "Google账号唯一ID", width = 15)
    @ApiModelProperty(value = "Google账号唯一ID")
    private String googleUuid;
    /**姓*/
    @Excel(name = "姓", width = 15)
    @ApiModelProperty(value = "姓")
    private String familyName;
    /**名*/
    @Excel(name = "名", width = 15)
    @ApiModelProperty(value = "名")
    private String givenName;
    /**google授权时间*/
    @Excel(name = "google授权时间", width = 15, dateFormat = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "google授权时间")
    private java.util.Date googleAuthAt;
    /**是否微软授权*/
    @Excel(name = "是否微软授权", width = 15)
    @ApiModelProperty(value = "是否微软授权")
    private Integer isMicrosoftAuth;
    /**微软账号唯一ID*/
    @Excel(name = "微软账号唯一ID", width = 15)
    @ApiModelProperty(value = "微软账号唯一ID")
    private String microsoftUuid;
    /**微软账号名称*/
    @Excel(name = "微软账号名称", width = 15)
    @ApiModelProperty(value = "微软账号名称")
    private String microsoftDisplayName;
    /**微软授权时间*/
    @Excel(name = "微软授权时间", width = 15, dateFormat = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "微软授权时间")
    private java.util.Date microsoftAuthAt;
    /**是否苹果授权*/
    @Excel(name = "是否苹果授权", width = 15)
    @ApiModelProperty(value = "是否苹果授权")
    private Integer isAppleAuth;
    /**苹果账号唯一ID*/
    @Excel(name = "苹果账号唯一ID", width = 15)
    @ApiModelProperty(value = "苹果账号唯一ID")
    private String appleUuid;
    /**苹果账号名字*/
    @Excel(name = "苹果账号名字", width = 15)
    @ApiModelProperty(value = "苹果账号名字")
    private String appleDisplayName;
    /**苹果授权时间*/
    @Excel(name = "苹果授权时间", width = 15, dateFormat = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "苹果授权时间")
    private java.util.Date appleAuthAt;
    /**是否苹果隐私邮箱*/
    @Excel(name = "是否苹果隐私邮箱", width = 15)
    @ApiModelProperty(value = "是否苹果隐私邮箱")
    private Integer appleIsPrivateEmail;

    @Excel(name = "是否苹果隐私邮箱", width = 15)
    @ApiModelProperty(value = "是否初始话")
    private Integer  isInit;
    @TableField(exist = false)
    private String smscode;
    @TableField(exist = false)
    private String confirmPassword;
    @TableField(exist = false)
    @ApiModelProperty(value = "google,microsoft,apple")
    private String signType;

    @TableField(exist = false)
    private String newEmail;
    @TableField(exist = false)
    private String sn;

}
